package Design_Pattern;

/**
 * @author zzq
 * time:2018/8/21 0:36
 * 单例模式
 */
public  class Singleton {

    private Singleton(){

    }

//方法一：这种写法，当类被加载的时候，已经创建好了一个静态对象，因此是线程安全的，缺点就是在这个对象还没有使用的时候就已经被创建出来了
    private static Singleton singleton =new Singleton();    //创建一个自己的对象作为静态成员变量
    public static Singleton createObject(){
        return  singleton;
    }
//方法二：优点就是在需要对象时再创建，缺点是线程不安全，或许会创建出多个对象
    private static Singleton singleton2 ;
    public static Singleton createObject2(){
        if (null ==singleton2){
            singleton2 = new Singleton();
        }
        return  singleton2;
    }




}
